/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package serverb.negocio;


import java.sql.SQLException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Vector;
import server.dominio.Hora;
import server.dominio.Medico;
import server.excepciones.MedicoInexistenteException;

import server.excepciones.UsuarioIncorrectoException;

/**
 *
 * @author tpaxle
 */
public class Controlador_HorarioB {
    private Controlador_ServidorB C_servidor;
    private Fachada_ServidorB fachada_basedatos;
    private DateFormat  formateadorfecha;
    public Controlador_HorarioB(Controlador_ServidorB C_servidor){
        this.C_servidor= C_servidor;
        fachada_basedatos= new Fachada_ServidorB();
        formateadorfecha= new SimpleDateFormat("dd/MM/yyyy hh:mm");
    }

    public void formatearhorario(Medico medico) throws UsuarioIncorrectoException, SQLException{
       fachada_basedatos.formatearhorario(medico);
    }

    public void insertarDatos(Medico medico, Vector<Date> dias, Date horaDesde, Date horaHasta) throws MedicoInexistenteException, SQLException {

            //A continuacion se adaptan los datos a lo que acepta la base de datos
            Calendar fechas= Calendar.getInstance();

            Calendar calculohora=Calendar.getInstance();
            Calendar horasdesde= Calendar.getInstance();
            calculohora.setTimeInMillis(horaHasta.getTime() - horaDesde.getTime());
            horasdesde.setTime(horaDesde);
            int distancia= calculohora.get(Calendar.HOUR_OF_DAY)-1;
            for(Date fecha: dias){
                //Para cada fecha se insertan tantas hroas como diferencia hay entre horaDesde hasta
                fechas.setTime(fecha);
                fechas.set(Calendar.HOUR_OF_DAY, horasdesde.get(Calendar.HOUR_OF_DAY));
                for(int i=0; i<distancia; i++){
                    System.out.println(formateadorfecha.format(fechas.getTime()));
                    Hora hora_insert= new Hora(medico,fechas.getTime(),"Libre");
                    fachada_basedatos.insertarhora(hora_insert);
                    fechas.add(Calendar.HOUR_OF_DAY, 1);
                }


            }
                  
    }


}
